﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuanLiSinhVienThucTap
{
    class XuliLenh
    {
        public static SqlConnection ketnoi;//biến kết nối
        private static SqlCommand cmd;//biến thực thi các lệnh update,delete...
        public static DataTable dulieusinhvien(string bang)
        {
            try
            {//tạo chuỗi thao tác để máy thực hiện câu truy vấn
                string tam = "SELECT * FROM  " + bang;
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);//thực hiện truyền tải dữ liệu vào dataset theo yêu cầu của chuỗi thao tác
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

        /*tim kiem 1 truong */
        //loc masv
        public static ArrayList Maloc(string chuoi, string ma)
        {
            try
            {

                string tam = "SELECT " + ma + " From " + chuoi;

                ArrayList arr = new ArrayList();
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataTable ds = new DataTable();
                da.Fill(ds);
                foreach (DataRow dar in ds.Rows)
                {
                    int i = 0;
                    for (i = 0; i < ds.Columns.Count; i++)
                    {
                        arr.Add(dar[i].ToString());
                    }
                }
                return arr;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

        //tim makhao
        public static ArrayList LocMaKhoa(string chuoi, string makhoa)
        {
            try
            {

                string tam = "SELECT " + makhoa + " From " + chuoi;

                ArrayList arl = new ArrayList();
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataTable ds = new DataTable();
                da.Fill(ds);
                foreach (DataRow dar in ds.Rows)
                {
                    int i = 0;
                    for (i = 0; i < ds.Columns.Count; i++)
                    {
                        arl.Add(dar[i].ToString());
                    }
                }
                return arl;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
    

        /*tim kiem nhieu truong*/
/*tim theo lop sinh vien*/
        public static DataTable loctimlop(string bang,string malop)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM "+bang+" sv,lop l WHERE l.malop='"+malop+"' and sv.malop=l.malop";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

/*tim theo ten sinh vien*/
        public static DataTable loctimten(string bang, string ten)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " sv WHERE sv.tensv=N'" + ten + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
/*tim theo masv trog form sv*/
        public static DataTable loctimma(string bang, string ma)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " sv WHERE sv.masv='" + ma + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
        //tim  theo ma khoa
        public static DataTable Loctimmakhoa(string bang, string makhoa)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " gv WHERE gv.makhoa ='" + makhoa + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
        //tim theo ma giao vien
        public static DataTable loctimmagv(string bang, string magvhd)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " gv WHERE gv.magv='" + magvhd + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
        public static DataTable loctimmtenGV(string bang, string tenGV)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " gv WHERE gv.tengv=N'" + tenGV + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

        //loc tim ma sinh vien theo diem sv
        public static DataTable loctimmasvdiem(string bang, string madiem)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng ngày từ ngày kitu đến ngày kitu1
                string tam = "SELECT * FROM " + bang + " d WHERE d.masv='" + madiem + "' ";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

        //loc tim sinh vien theo khoang diem
        public static DataTable loctimkhoangdiem(string bang, string tu,string den)
        {
            try
            {
                //Chuỗi thao tác sẽ thực hiện lọc các phần tử theo 1 khoảng                 
                string tam ="select * from "+bang+" where diem between "+tu+" and "+den+"";
                              //select * from diem d  where d.diem between 1 and 6
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
        
        

        
        public static DataTable loaddulieu(string bang)
        {
            try{//tạo chuỗi thao tác để máy thực hiện câu truy vấn
                string tam = "SELECT * FROM  " + bang ;
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);//thực hiện truyền tải dữ liệu vào dataset theo yêu cầu của chuỗi thao tác
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }
        public static DataTable nhandulieunguoncoloc(string bang, string magv)
        {
            try
            {//tạo chuỗi thao tác để máy thực hiện câu truy vấn
                string tam = "SELECT * FROM  " + bang + " where Masach like '" + magv + "%'";
                SqlDataAdapter da = new SqlDataAdapter(tam, ketnoi);//thực hiện truyền tải dữ liệu vào dataset theo yêu cầu của chuỗi thao tác
                DataSet ds = new DataSet();
                da.Fill(ds, bang);
                return ds.Tables[bang];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return null;
            }
        }

        public static void xoaGV(string bang,string magv)
        {

            try
            {
                string delete = "DELETE FROM " + bang + " WHERE Magv= '" + magv + "'";
                 //delete from GVHD where magv='2113482'
                cmd = new SqlCommand(delete, ketnoi);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("Hiện sách đang được mượn nên không thể xóa!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            }
        public static void sua(string bang, string magv, string tengv, string phai, DateTime ngsinh, string email, string sdt, string diachi, string makhoa)
        {
            string suatam = "update "+ bang+"  set magv='"+magv+"',tengv=N'"+tengv+"',phai=N'"+phai+"',ngsinh="+ngsinh.ToShortDateString()+",sdt='"+sdt+"',email='"+email+"',diachi=N'"+diachi+"',makhoa='"+makhoa+"'WHERE magv='"+magv+"'";
                                              cmd = new SqlCommand(suatam, ketnoi);
            cmd.ExecuteNonQuery();
            
        }


        //hàm thêm dữ liệu vào bảng sinh viên
        public static void themsv(string bang, string masv, string tensv, DateTime ngaysinh, string noisinh, string diachi, string dienthoai, string gioitinh, string email, string malop, string manhom, string madvtt)
        {
            try
            {
                string chuoithem = "INSERT INTO" + bang + "VALUES('" + masv + "',N'" + tensv + "'," + ngaysinh + ",N'" + noisinh + "',N'" + diachi + "','" + dienthoai + "',N'" + gioitinh + "','" + email + "','" + malop + "','" + manhom + "','" + madvtt + "')";
                //INSERT INTO sinhvien  VALUES('21110973','Nguyễn Văn A',01/02/1993,'Buôn Ma Thuột','Vô Gia Cư','0989712','Nam','a@gmail.com','CCQ111103','NTT01','DV01')
                cmd = new SqlCommand(chuoithem, ketnoi);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("đã có sinh viên này", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

        }
        //xóa dữ liệu từ bảng sinh viên
        public static void xoaSV(string bang, string masv)
        {

            try
            {
                string delete = "DELETE FROM " + bang + " WHERE Masv= '" + masv + "'";
                //delete from GVHD where magv='2113482'
                cmd = new SqlCommand(delete, ketnoi);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("hiện sinh viên đang trong quá trình thực tập nên không thể xóa!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
        public static void themGV(string bang, string magv, string makhoa, string tengv, string phai, DateTime ngsinh, string sdt, string email,string diachi )
        {
            try
            {
                string chuoithem = "INSERT INTO " + bang + " VALUES('" + magv + "','" + makhoa + "','" + tengv + "','" + phai + "','" + ngsinh.ToShortDateString() + "','" + sdt + "','" + email + "','" + diachi + "')";
                cmd = new SqlCommand(chuoithem, ketnoi);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("Đã có mã bạn đọc này!Xin vui lòng nhập mã khác", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }

    }
}
